#encoding: utf-8

# 大鹏董成鹏主页：http://www.renren.com/880151247/profile
# 人人网登录url：http://www.renren.com/PLogin.do

from urllib import request
from urllib import parse
from http.cookiejar import CookieJar
from http.cookiejar import MozillaCookieJar


class CookieLogin:

    def get_opener(self):
        # 1. 登录
        # 1.1 创建一个cookiejar对象
        cookiejar = CookieJar()
        # 1.2 使用cookiejar创建一个HTTPCookieProcess对象
        handler = request.HTTPCookieProcessor(cookiejar)
        # 1.3 使用上一步创建的handler创建一个opener
        opener = request.build_opener(handler)
        return opener

    def login(self, login_data, login_url, headers):
        # 1.4 使用opener发送登录的请求（人人网的邮箱和密码）
        req = request.Request(login_url,
                              data=parse.urlencode(login_data).encode('utf-8'),
                              headers=headers)
        try:
            opener.open(req)
            print('login success')
        except Exception as e:
            print('login failed', e)


def visit_profile(opener, target_url):
    # 2. 访问个人主页
    # 获取个人主页的页面的时候，不要新建一个opener
    # 而应该使用之前的那个opener，因为之前的那个opener已经包含了
    # 登录所需要的cookie信息
    req = request.Request(target_url,headers=headers)
    resp = opener.open(req)
    with open('renren.html','w',encoding='utf-8') as fp:
        fp.write(resp.read().decode('utf-8'))


if __name__ == '__main__':
    headers = {'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"}
    login_url = "http://www.renren.com/PLogin.do"
    login_data = {'email':"970138074@qq.com",
        'password': "pythonspider"}
    c = CookieLogin()
    opener = c.get_opener()
    c.login(login_data, login_url, headers)
    target_url = "http://www.renren.com/880151247/profile"
    visit_profile(opener, target_url)






